21 void ssd1331_fillRect(screen_t* dev,
int x0,
int y0,
int x1,
int y1,
int color) {
22 int mask_cs = (1 << dev->dev_id);
23 int mask_sdi = (1 << dev->sdi_pin);
24 int mask_clk = (1 << dev->clk_pin);
25 int mask_dc = (1 << dev->dc_pin);
27 ssd1331_writeLockSet(dev->dev_id);
29 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, SSD1331_CMD_FILL, 0);
30 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, 1, 0);
32 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, SSD1331_CMD_DRAWRECT, 0);
33 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, x0, 0);
34 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, y0, 0);
35 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, x1, 0);
36 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, y1, 0);
38 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, (color >> 11) << 1, 0);
39 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, (color >> 5) & 0x3F, 0);
40 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, (color << 1) & 0x3F, 0);
41 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, (color >> 11) << 1, 0);
42 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, (color >> 5) & 0x3F, 0);
43 ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, (color << 1) & 0x3F, 0);
46 int _tMark = CNT + (CLKFREQ / 4000);
49 ssd1331_writeLockClear(dev->dev_id);
53 void ssd1331_clearDisplay(screen_t* dev) {
54 ssd1331_fillRect(dev, 0, 0, dev->width - 1, dev->height - 1, 0);